import {createSlice} from "@reduxjs/toolkit";

/*
* 步骤：
* 1、通过createSlice函数创建一个Store对象：
* 定义这个Store名称==》初始化状态数据state==》修改数据同步方法reducers中定义各种修改（这些步骤其实跟pinia大同小异）
* state状态的方法。
* 2、解构出创建action对象的函数（actionCreater）
* 3、//导出创建action对象的函数和reducer函数
*
* */
const CounterStore=createSlice({
//     定义这个Store的名称--和pina那个很像
    name:'counter',
    // 初始化状态数据state
    initialState:{
        count:0,
        name:''
    },
//     修改数据的同步方法--相当于pinia的action
//     修改状态数据state，就是这里执行
    reducers:{
        increment(state){
            // 这里的count和初始化状态数据state的名字对的上
            state.count++
        },
        decrement(state){
            state.count--;
        },
        changeName(state){
            state.name+='===>'
        },
        addToNum(state,action){
            state.count=action.payload
        }
    }
})

//解构出创建action对象的函数（actionCreater）
const {increment,decrement,changeName,addToNum}=CounterStore.actions;
// 获取reducer函数
const counterReducer=CounterStore.reducer;

//以按需导出的方式导出创建action对象的函数和reducer函数
export {increment,decrement,changeName,addToNum}

// 导出reducer,这个是在store中的index.js中被导入的
export default counterReducer;